草庐IT

c++ - std::make_pair 与 c++ 11

全部标签

c++ - 使用 C++/STL 将 std::vector<CString> 展平为 multi_sz 的推荐方法是什么

我想将存储在std::vector中的字符串列表(ATL::CString)写入Windows注册表中的REG_MULTI_SZ值。我知道如何在普通C中执行此操作(迭代一次以获得总长度,分配一个缓冲区,将字符串复制到由“\0”分隔的缓冲区)。知道我使用STL尝试了以下操作(抱歉,我必须将VS2010与“foreach”一起使用):std::vectormultiline_sz;foreach(CStringentryinmyStringList){TCHAR*buf=entry.GetBuffer();multiline_sz.insert(multiline_sz.end(),&bu

创建 3 个线程并使用 WSAWaitForMultipleEvents() 和 WSAEnumNetworkEvents() 时 CPU 使用率 100%

我创建了3个线程,每个线程都有一个套接字。在每个线程中,套接字被设置为“事件驱动”,并且每当数据可供读取时,就会生成一个事件。该代码工作正常,但它占用CPU使用率高达100%,这肯定是不可取的。我想我犯了一些错误。下面是我的代码。请帮助我找出导致100%CPU使用率的错误。代码:DWORDWINAPIThreadProc(LPVOIDparam){intthreadNumber=(int)param;intPORT=8888+threadNumber;//sothateachthreadbind()sitssockettoadifferentPortnumber.WSADATAwsa;

c - SetWindowLongPtr 返回 ERROR_ACCESS_DENIED

我还在为钩子(Hook)而苦苦挣扎。我的目标是:在notepad.exe中设置一个钩子(Hook)对其进行子类化(我的最终目标是将Edit类子类化并在我自己的窗口中显示内容)免责声明:我知道有更简单的方法可以从记事本中获取文本/内容,但这是我学习C、winapi、子类化和Hook的一种方式。我的问题是SetWindowLongPtr始终返回ERROR_ACCESS_DENIED错误(代码5)。2013年5月22日:已修复!问题是SetWindowLongPtr在错误的地方。它必须在GetMsgProc函数内。问题变得有点冗长和困惑,所以我重新写了问题(更新了代码)现在的问题是,当目标是

c - 如何拦截Windows中的C库调用?

我有一个devilish-gui.exe、一个devilish.dll和一个来自已丢失的C代码库的devilish.h.devilish-gui仍然是客户使用的,它使用devilish.dlldevilish.h在30页的pdf中没有很好的记录:它公开了一些C函数,这些函数根据作为参数提供的结构中的值以非常不同的方式运行。现在,我必须使用devilish.dll来编写一个新的devilish-webservice。不,我不能重写它。文档几乎没用,但因为我有devilish-gui.exe,所以我想编写devilish.h的不同实现,以便它在文件中记录函数的调用和参数,而不是调用原始dl

c# - ReadMsgQueue 返回 ERROR_INVALID_PARAMETER

Windows嵌入式紧凑型。TryingtosendandreceiveamessagewithMsgQueue.看起来写入工作正常但读取给出了不正确的参数错误。知道缺少什么吗?我不确定创建队列函数。它说必须调用两次才能获得读取或写入句柄-对吗?intmain(){MSGQUEUEOPTIONSoptions={0};options.dwSize=sizeof(options);//options.dwFlags=MSGQUEUE_NOPRECOMMIT;options.dwMaxMessages=10000;//msgmaxforqueueoptions.cbMaxMessage=5

Windows 8.1/IE11 自定义 URL 协议(protocol)打开 --> about :blank

Windows8.1/IE11自定义url协议(protocol)困惑。启动后,应用程序被执行,然后浏览器中的url重定向到about:blank即使是Skype的协议(protocol)也是如此:ChatviaSkype我尝试了一些方法,例如使用iframe,document.location.href=u;结果很差。当链接位于iframe内时,这似乎有效,否则失败:testdocument.location.href='proto://datadatadata';有人知道如何在浏览器不重定向到about:blank的情况下启动协议(protocol)的应用程序吗?我现在将IE11视

c - SetupDiGetDeviceRegistryProperty : "The data area passed to a system call is too small" error

我有一个使用SetupAPI在WindowsXP上枚举USB设备的代码:HDEVINFOhDevInfo=SetupDiGetClassDevs(&_DEVINTERFACE_USB_DEVICE,0,0,DIGCF_DEVICEINTERFACE|DIGCF_PRESENT);for(DWORDi=0;;++i){SP_DEVINFO_DATAdevInfo;devInfo.cbSize=sizeof(SP_DEVINFO_DATA);BOOLsucc=SetupDiEnumDeviceInfo(hDevInfo,i,&devInfo);if(GetLastError()==ERRO

windows - 在没有 IE 11 的情况下安装 VS 2013 的任何方法?

我正在尝试安装VS2013但如果没有安装IE11则无法安装。IE11出于某种奇怪的原因拒绝安装。有没有办法在不安装IE11的情况下安装VS2013? 最佳答案 这是我的解决方案:Changetheregistery点击运行-->regedit转到HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\InternetExplorer将svcVersion的值更改为10,您就完成了。 关于windows-在没有IE11的情况下安装VS2013的任

c++ - std::istream 上的 Windows IStream 接口(interface)

在Windows上的C++中,是否有任何简单的方法可以为现有std::stream对象创建(COM)IStream接口(interface)?一个示例是使用IWICStream::InitializeFromIStream()从std::cin读取图像。 最佳答案 没有标准的实现。您需要编写实现IStream接口(interface)并根据需要在内部委托(delegate)给std::stream的类(或寻找第三方类)。但是,您可能无法实现IStream::Stat(),它通常用于检索流的数据大小。对于std::cin,您不知道提供

c - 如果进程终止但系统继续运行, WriteFile() 会是原子的吗?

如果我的进程在随机时刻终止但操作系统继续正常运行,Windows会保证对WriteFile的个别调用吗?是原子的(又名全有或全无)?或者我可以获得部分/撕裂的写入?注意:我特意不征求有关如何练习防御性编码的建议。这是一个严格关于MicrosoftWindows操作系统本身行为的问题。要100%完美地一目了然,我们可以并且明确地确实相信用户代码的行为是正常的。没有没有未定义的行为或任何类似的行为。假定所有进程终止都是通过明确定义的行为发生的,例如未处理的异常或调用TerminateProcess,不是内存损坏等。另外,请特别注意这里不需要担心C++析构函数;这是C。我希望所有关于用户代码